package com.zion.tencent_dnspod_api.config;


import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.dnspod.v20210323.DnspodClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.annotation.Resource;

/**
 * Dnspod接口访问对象的配置类
 * @Author ZionChen
 * @Date 2024/1/5 01:54
 * @PackageName:com.zion.dnspod_update.config
 * @ClassName: DnsPodClientConfig
 * @Description: TODO
 * @Version 1.0
 */
@Configuration
@Slf4j
public class DnsPodClientConfig {
    @Resource
    private TencentConfig tencentConfig;

    /**
     * 创建DnspodClient对象
     * @return 初始化成功的DnsPodClient对象
     */
    @Bean
    public DnspodClient dnspodClient(){
        log.info("创建DnspodClient对象");
        // 实例化一个认证对象，入参需要传入腾讯云账户 SecretId 和 SecretKey，此处还需注意密钥对的保密
        // 代码泄露可能会导致 SecretId 和 SecretKey 泄露，并威胁账号下所有资源的安全性。以下代码示例仅供参考，建议采用更安全的方式来使用密钥，请参见：https://cloud.tencent.com/document/product/1278/85305
        // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
        Credential cred = new Credential(tencentConfig.getSecretId(), tencentConfig.getSecretKey());
        // 实例化一个http选项，可选的，没有特殊需求可以跳过
        HttpProfile httpProfile = new HttpProfile();
        httpProfile.setEndpoint(tencentConfig.getHost());
        // 实例化一个client选项，可选的，没有特殊需求可以跳过
        ClientProfile clientProfile = new ClientProfile();
        clientProfile.setHttpProfile(httpProfile);
        // 实例化要请求产品的client对象,clientProfile是可选的
        DnspodClient client = new DnspodClient(cred, "", clientProfile);
        return client;
    }
}
